package com.aidex.biz.domain;

import com.aidex.common.annotation.Excel;
import com.aidex.common.core.domain.BaseEntity;
import lombok.Data;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;

/**
 * 上门预约对象 biz_appointment
 *
 * @author sean
 * @email 2074844820@qq.com
 * @date 2022-10-11
 */
@Data
public class Appointment extends BaseEntity<Appointment> {
    private static final long serialVersionUID = 1L;


    /**
     * 分类ID
     */
    @Excel(name = "分类ID")
    private String typeId;

    /**
     * 分类名称
     */
    @Excel(name = "分类名称")
    private String typeName;

    // 业务类型 0 自营 1 外包
    private Integer busType;

    /**
     * 重量
     */
    private String weight;

    /**
     * 单价
     */
    private BigDecimal price;

    /**
     * 小计
     */
    private BigDecimal amount;

    /**
     * 电话
     */
    private String phone;

    /**
     * 用户ID
     */
    private String userInfoId;

    private UserInfo userInfo;

    /**
     * 用户名称
     */
    private String name;

    /**
     * 地址ID
     */
    private String addressId;

    // 预约的订单地址
    private UserAddress userAddress;
    /**
     * 服务人员ID
     */
    private String visitUserInfoId;
    // 预约订单 服务人员
    private UserInfo visitUserInfo;

    @Excel(name = "电话")
    private String appPhone;

    private String imageUrl;


    /**
     * 详细地址
     */
    private String appDetailsAddress;

    /**
     * 收件人
     */
    private String appName;

    /**
     * 区域
     */
    private String appArea;

    private String lat;
    private String lng;


    // 距离
    private String distance;
    /**
     * 排序
     */
    private Integer sort;

    /**
     * 状态（0待接单 1 已接单待上门 2 已上门 ）
     */
    private String status;

    private String statusText;

    // 取消原因
    private String cancelReason;


    public void setTypeId(String typeId) {
        this.typeId = typeId;
    }

    public String getTypeId() {
        return typeId;
    }

    public void setTypeName(String typeName) {
        this.typeName = typeName;
    }

    public String getTypeName() {
        return typeName;
    }

    public String getWeight() {
        return weight;
    }

    public void setWeight(String weight) {
        this.weight = weight;
    }

    public void setPrice(BigDecimal price) {
        this.price = price;
    }

    public BigDecimal getPrice() {
        return price;
    }

    public void setAmount(BigDecimal amount) {
        this.amount = amount;
    }

    public BigDecimal getAmount() {
        return amount;
    }

    public void setPhone(String phone) {
        this.phone = phone;
    }

    public String getPhone() {
        return phone;
    }

    public void setUserInfoId(String userInfoId) {
        this.userInfoId = userInfoId;
    }

    public String getUserInfoId() {
        return userInfoId;
    }

    public void setName(String name) {
        this.name = name;
    }

    public String getName() {
        return name;
    }


    public void setSort(Integer sort) {
        this.sort = sort;
    }

    public Integer getSort() {
        return sort;
    }

    public void setStatus(String status) {
        this.status = status;
    }

    public String getStatus() {
        return status;
    }


    @Override
    public String toString() {
        return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE).append("userId", getUserId()).append("deptId"
                , getDeptId()).append("userName", getUserName()).append("deptName", getDeptName()).append("companyId"
                , getCompanyId()).append("typeId", getTypeId()).append("typeName", getTypeName()).append("weight",
                getWeight()).append("price", getPrice()).append("amount", getAmount()).append("phone", getPhone()).append("userInfoId", getUserInfoId()).append("name", getName()).append("addreesId", getAddressId()).append("sort", getSort()).append("status", getStatus()).append("remark", getRemark()).append("id", getId()).append("createBy", getCreateBy()).append("createDept", getCreateDept()).append("createTime", getCreateTime()).append("updateBy", getUpdateBy()).append("updateTime", getUpdateTime()).append("updateIp", getUpdateIp()).append("version", getVersion()).append("delFlag", getDelFlag()).toString();
    }
}
